// 导出一个通用的请求函数，接收配置对象
export const request = (options) => {
  // 返回一个 Promise，便于使用 then/catch 处理异步请求
  return new Promise((resolve, reject) => {
    // API 基础地址，根据实际后端服务器地址配置
    const BASE_URL = 'http://127.0.0.1:8081'; 

    // 使用 uni-app 的网络请求方法
    uni.request({
      // 完整的请求 URL = 基础地址 + 相对路径
      url: BASE_URL + options.url,

      // 请求方法，默认为 GET
      // 如果 options 中没有指定 method，则使用 'GET'
      method: options.method || 'GET',

      // 请求数据，默认为空对象
      // 如果 options 中没有指定 data，则使用 {}
      data: options.data || {},

      // 请求头配置
      header: {
        // 设置内容类型为 JSON
        'Content-Type': 'application/json',
        
        // 可以添加认证 token（注释中的示例）
        // 从本地存储中获取 token
        'Authorization': uni.getStorageSync('sorterJWT')
      },

      // 请求成功的回调
      success: (res) => {
        // 只有当状态码为 200 时，才认为请求成功
        if (res.statusCode === 200) {
          // 成功时，resolve 响应数据
          resolve(res.data);
        } else {
          // 状态码非 200，视为请求失败
          // 创建一个错误对象，包含状态码信息
          reject(new Error(`请求失败: ${res.statusCode}`));
        }
      },

      // 请求失败的回调
      fail: (err) => {
        // 直接 reject 错误
        // 可能是网络错误、超时等
        reject(err);
      }
    });
  });
};